package auser;

import com.db4o.config.annotations.Indexed;

public class Utente extends AuserClassAbstract {
	 
	private String userId=null; 
	private String descrizione=null;
	private String password=null;
	private String ruoli=null;
	 
	private Circolo circolo=null;
	
	public Utente(){}
	public Utente(String userId){
		this();
		this.userId=userId;
	}
	
	public Utente(String userId,String password){
		this();
		this.userId=userId;
		this.password=password;
	}
	
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public String getRuoli() {
		return ruoli;
	}
	public void setRuoli(String ruoli) {
		this.ruoli = ruoli;
	}
	public String getUserId() {
		return userId;
	}
	public void setUserId(String userId) {
		this.userId = userId;
	}
	public String getDescrizione() {
		return descrizione;
	}
	public void setDescrizione(String descrizione) {
		this.descrizione = descrizione;
	}
	
	public boolean hasRole(String role){
		if(role==null)return false;
		if(ruoli==null) return false;
		return (ruoli.indexOf(role)>-1);
	}
	public Circolo getCircolo() {
		return circolo;
	}
	public void setCircolo(Circolo circolo) {
		this.circolo = circolo;
	}
	
	public boolean isSocio(){
		if(this.getRuoli()==null) return false;
		if(this.getRuoli().equals("soci")) return true;
		if(this.getRuoli().equals("admin")) return true;
		if(this.getRuoli().equals("localadmin")) return true;
		return false;
	}
	
	public boolean isAdmin(){
		if(this.getRuoli()==null) return false; 
		if(this.getRuoli().equals("admin")) return true; 
		return false;
	}
	
	public boolean isLocalAdmin(){
		if(this.getRuoli()==null) return false; 
		if(this.getRuoli().equals("admin")) return true;
		if(this.getRuoli().equals("localadmin")) return true;
		return false;
	}
	
	public boolean isContabile(){
		if(this.getRuoli()==null) return false;
		if(this.getRuoli().equals("contabile")) return true;
		if(this.getRuoli().equals("admin")) return true;
		if(this.getRuoli().equals("localadmin")) return true;
		return false;
	}
}
